<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script>
      /* 
        Map
            - Map 用来存储键值对结构的数据(key - Value)
            - Object中存储的数据可以认为是一种键值对结构
            - Map 和Object主要区别就在于
                - Object中的属性,只能是字符串或者符号,如果传递了一个其他类型的属性名:
                    JS解释器会自动将其转换为字符串
                - Map中任意类型的值都可以作为数据的Key

       */
      const obj3 = {};
      const obj = {
        name: 'dd',
        age: 'dsada',
        [Symbol()]: 'SDSADA',
        [obj3]: 'DSDS',
      };
      /* 
        创建Map
            const xxx  = new Map()
            
        属性和方法:
            map.size 获取Map中键值对的数量
            map.set(key,value) 向map中添加键值对
            map.get(key) 根据key获取值
            map.delete(key) 删除制定数据
            map.has(key) 检查map中是否包含指定key
            map.clear()删除全部键值对
       */
      const map = new Map();
      map.set(NaN, 'GG');
      map.set(obj3, 'DSD');
      map.get(NaN);
      console.log(map.size);
      map.delete(obj3);
      console.log(map.has(NaN));
      map.clear();
    </script>
  </head>
  <body></body>
</html>
